import { trim } from '@/libs/tools'

export function fuzzyQuery (key, list) {
    const v = trim(key).toUpperCase()
    return list.find(item =>
        JSON.stringify([item.value, item.label])
            .toUpperCase()
            .includes(v)
    )
}

/**
 * 处理Select下拉组件回车时根据输入的值查找对应的数据方法
 * @param {Event} event  回车事件
 * @param {Array} list 需要查找的列表
 * @param {Function} queryFn 列表中没找到是自定义的远程搜索方法
 * @param {Function} cb 回调函数
 */
export function handleSelectEnterQueryData (event, list, queryFn, cb) {
    const v = trim(event.target.value)
    if (list.length && v === '') {
        cb(list[0])
    } else {
        const data = fuzzyQuery(v, list)
        data
            ? cb(data)
            : queryFn && queryFn(v, arr => {
                arr.length && cb(arr[0])
            })
    }
}
